<?php

class UtilComponent extends Component {

//http://book.cakephp.org/2.0/en/core-libraries/behaviors/containable.html
    public function __construct() {
        $this->Periodo = ClassRegistry::init('Periodo');
        $this->Cliente = ClassRegistry::init('Cliente');
    }
    
    function decode($ayuda = 'vacio', $valor = 'null') {
        if ($valor != null) {

            $decode = $valor;
            @$decode = convert_uudecode($decode);
            @$decode = base64_decode($decode);
            $decode = str_replace("hidden", ' ', $decode);
            $decode = str_replace("block:", ' ', $decode);
            $decode = trim($decode);
            $valor = $decode;

            if (is_numeric($decode))
                $valor = false;
            else
                $valor = true;
        } else
            $valor = true;
        return $valor;
    }

    function periodo_activo() {
        $da = $this->Periodo->find('first', array('conditions' => array("Periodo.estatus" => '1')));
        if (!isset($da['Periodo']['id'])) {
            $va[] = 0;
            $va[] = 'Sin Periodo';
        } else {
            $va[] = $da['Periodo']['id'];
            $va[] = $da['Periodo']['nombre'];
        }
        return $va;
    }

    function f_actual() {
        return date('Y-m-d');
    }

    function ver_fecha($f = null) {
        return substr($f, 8, 2) . "-" . substr($f, 5, 2) . "-" . substr($f, 0, 4);
    }

    function guar_fecha($f = null) {
        return substr($f, 6, 4) . "-" . substr($f, 3, 2) . "-" . substr($f, 0, 2);
    }

    function mayuscula($t) {
        return trim(addslashes(strtr(strtoupper($t), "àèìòùáéíóúçñäëïöü", "ÀÈÌÒÙÁÉÍÓÚÇÑÄËÏÖÜ")));
    }

    function con_clave($t) {
        return trim(addslashes(md5($t)));
    }

    function lista_rif($tipo = 'C') {
        if ($tipo == 'C')
            $codigo = array('V' => 'V', 'E' => 'E', 'J' => 'J', 'G' => 'G');
        else
            $codigo = array('V' => 'Venezolano', 'E' => 'Extranjero', 'J' => 'Juridica', 'G' => 'Gobierno');
        return $codigo;
    }

    function lista_tipo($tipo = 'C') {
        $codigo = array('1' => 'NATURAL', '2' => 'JURIDICA');

        return $codigo;
    }

    function lista_sexo($tipo = 'C') {
        if ($tipo == 'C')
            $codigo = array('M' => 'M', 'F' => 'F');
        else
            $codigo = array('M' => 'Masculino', 'F' => 'Femenino');
        return $codigo;
    }

    function lista_cod_celular($tipo = 'C') {
        $codigo = array('0142' => '0142', '0414' => '0414', '0424' => '0424', '0416' => '0416', '0426' => '0426');

        return $codigo;
    }

    function armar_numero($i) {
        if ($i < 10)
            $iv = "0$i";
        else
            $iv = $i;
        return $iv;
    }

    function lista_numeros($inicio = 0, $fin = 0, $sum = 1) {
        $codigo = array();
        for ($i = $inicio; $i < $fin;) {
            if ($i < 10)
                $iv = "0$i";
            else
                $iv = $i;
            $iv = $this->armar_numero($i);
            $codigo[$i] = $iv;
            $i+=$sum;
        }
        return $codigo;
    }

    function lista_si_no($tipo = 'N') {
        if ($tipo == 'N')
            $codigo = array('1' => 'SI', '2' => 'NO');
        else
            $codigo = array('SI' => 'SI', 'NO' => 'NO');
        return $codigo;
    }
    
    function bdCreadas($indiceID = true) {
        $data = $this->Cliente->query("SELECT DISTINCT REPLACE((substring(datname from 1 for 10)),'punto_','') as base_datos  
                FROM pg_database WHERE datname ILIKE 'punto_T%'
                GROUP BY pg_database.datname ORDER BY 1");
        
        $bdCreadas = array();
        $i = 0;
        foreach($data as $indice => $valor) {
            $i = ($indiceID) ? $valor[0]['base_datos'] : ++$i;
            $bdCreadas[$i] = $valor[0]['base_datos'];
        }
        
        return $bdCreadas;
    }
    
    function tiendasActivas($listaTiendas) {
        $tiendasActivas = $this->bdCreadas();
        foreach($listaTiendas as $indice => $valor) {
            $tienda = explode("-", $valor);
            $tienda = trim($tienda[0]);
            if(!in_array($tienda, $tiendasActivas))
                unset($listaTiendas[$indice]);
        }
        return $listaTiendas;
    }

}
